home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMIBEST4.ADF / AmigaBasicStuff / Hilbert.MSB (.txt) < prev    next >
AmigaBASIC Source Code  |  1987-07-22  |  1KB  |  56 lines

  1. REM *****************************************
  2. REM * HILBERT BY MICHAEL ACKERMAN - 8/27/85 *
  3. REM * AMIGA HACK BY DAVE WELCH    - 6/02/86 *
  4. REM * FROM THE JUNE, 1986 BYTE MAGAZINE     *
  5. REM *****************************************
  6.  
  7. DEFINT A-Z
  8. GOTO MAIN
  9. HILL: rder = rder - 1
  10. TURN = - TURN
  11. TEMP = DY:DY = - TURN * DX:DX = TURN * TEMP
  12. IF rder > 0 THEN GOSUB HILL
  13. X = X + DX:Y = Y + DY:CALL HPLOT (X, Y)
  14. TURN = - TURN
  15. TEMP = DY:DY = -TURN * DX:DX = TURN * TEMP
  16. IF rder > 0 THEN GOSUB HILL
  17. X = X + DX:Y = Y + DY:CALL HPLOT (X, Y)
  18. IF rder > 0 THEN GOSUB HILL
  19. TEMP = DY:DY = -TURN * DX:DX = TURN * TEMP
  20. TURN = - TURN
  21. X = X + DX:Y = Y + DY:CALL HPLOT (X, Y)
  22. IF rder > 0 THEN GOSUB HILL
  23. TEMP = DY:DY = - TURN * DX:DX = TURN * TEMP
  24. TURN = - TURN
  25. rder = rder + 1
  26. RETURN
  27. MAIN: WINDOW OUTPUT 1:WINDOW CLOSE 2:SCREEN CLOSE 2:CLS
  28. INPUT "ORDER <1-7> ";rder
  29. IF rder = 0 THEN END
  30. IF rder > 5 THEN
  31.     SCREEN 2, 640, 400, 1, 4
  32.     WINDOW 2, "Hilbert Curve", (1,1)-(631,386), 0, 2
  33.     WINDOW OUTPUT 2
  34.     POWER = 2^rder
  35.     DY = 300 / POWER
  36.     ELSE
  37.     SCREEN 2, 320, 200, 1, 1
  38.     WINDOW 2, "Hilbert Curve", (1,1)-(311,186), 0, 2
  39.     WINDOW OUTPUT 2
  40.     POWER = 2^rder
  41.     DY = 150 / POWER
  42.     END IF
  43. TURN = -1
  44. DX = 0:X = 0:Y = 0
  45. OLDX = 0:OLDY = 0
  46. GOSUB HILL
  47. LINE INPUT A$
  48. GOTO MAIN
  49. SUB HPLOT (XX, YY) STATIC
  50. SHARED OLDX, OLDY
  51. LINE (OLDX, OLDY) - (XX, YY)
  52. OLDX = XX:OLDY = YY
  53. END SUB
  54.  
  55.  
  56.